package models

import (
	"github.com/astaxie/beego/orm"
	"time"
)

// 资源文件列表
type ImageResource struct {
	Id         int64     `orm:"pk;auto"`
	Title      string    `orm:"size(255)";json:"title"`       //文件名称
	Describe   string    `orm:"size(999999)";json:"describe"` // 描述
	Auther     string    `orm:"size(20)";json:"auther"`       //邮箱
	ResFomat   string    `orm:"size(20)";json:"res_fomat"`    // 文件格式：mp3,mp4,jpg
	Path       string    `orm:"size(255)";json:"path"`        //文件路径
	Thumb      string    `orm:"size(255)";json:"thumb"`       //文件缩略图
	DownCounts int       `orm:"size(11)";json:"down_counts"`  //下载次数
	Tags       string    `orm:"size(255)";json:"tags"`        //标签
	IsDelete   string    `orm:"size(1)";json:"is_delete"`     //删除
	CreateAt   time.Time `orm:"auto_now_add;type(datetime)"form:"-";`
	CreateBy   int64     `orm:"size(11)";json:"describe"` //用户名称
	UpdateAt   time.Time `orm:"auto_now;type(datetime)";`
	UpdateBy   int64     `orm:"size(11)";json:"update_by"`   //更新者姓名
	UpdateName string    `orm:"size(20)";json:"update_name"` //更新者姓名
	CreateName string    `orm:"size(20)";json:"create_name"` //更新者姓名
	Pv         int64     `orm:"size(11)";json:"pv"`          //更新者姓名
}

// 获取模型名称
// 获取模型表名
func (m *ImageResource) TableName() string {
	return "image_resource"
}

// 获取全部用户
func (m *ImageResource) GetAllUser() []*ImageResource {
	info := ImageResource{}
	list := make([]*ImageResource, 0)
	_, _ = info.Query().All(&list)
	return list
}

// 查询方法
func (m *ImageResource) Query() orm.QuerySeter {
	return orm.NewOrm().QueryTable(m)
}

// 添加文件
func (m *ImageResource) Insert() error {
	_, err := orm.NewOrm().Insert(m)
	return err
}

// 删除用资源文件
func (m *ImageResource) Delete() error {
	_, err := orm.NewOrm().Delete(m)
	return err
}

// 修改资源文件
func (m *ImageResource) Update(fields ...string) error {
	if _, err := orm.NewOrm().Update(m, fields...); err != nil {
		return err
	}
	return nil
}
func (m *ImageResource) Read(fields ...string) (int64, error) {
	if err := orm.NewOrm().Read(m, fields...); err != nil {
		return 0, err
	}
	return m.Id, nil
}

// 通过ID查询单个资源文件信息
func (m *ImageResource) GetFileById(uid int64) (*ImageResource, error) {
	err := m.Query().Filter("id", uid).One(m)
	return m, err
}
